<?php

require_once 'Professor.php';
require_once '../model/dao/DBBanca.php';

/**
 * Classe responsável por tratar o estado e o comportamento dos objetos de tipo banca.
 *
 * @author gabrielbmoro
 */
class Banca {

    private $professoresList;
    private $dbBanca;

    /* Método responsável por inicializar dados como os nomes de professores */

    public function __construct($nameProfessor1, $nameProfessor2, $nameProfessor3) {
        $prof1 = new Professor(null, null, null, null, null, null, $nameProfessor1, null);
        $prof2 = new Professor(null, null, null, null, null, null, $nameProfessor2, null);
        $prof3 = new Professor(null, null, null, null, null, null, $nameProfessor3, null);


        $this->professoresList = array(0 => $prof1, 1 => $prof2, 2 => $prof3);
        $this->dbBanca = new DBBanca();
    }

    /* Método responsável por recuperar a lista dos nomes dos professores que fazem parte da banca. */

    public function getListNameProfessors() {
        $names = null;
        for ($count = 0; $count < sizeof($this->professoresList); $count++) {
            $names[$count] = $this->professoresList[$count]->getNome();
        }
        return $names;
    }

    /* Método responsável por recuperar a lista dos nomes dos professores de acordo com o idBanca. */

    public function getListNameProfessorsOficiaisBanca($idBanca) {
        $listOfIds = $this->dbBanca->recuperar($idBanca);
        $professor = new Professor(null, null, null, null, null, null, null, null);
        $count = 0;
        $listName = null;

        for (; $count < sizeof($listOfIds); $count++) {
            $listName[$count] = $professor->getNomeById($listOfIds[$count]);
        }

        return $listName;
    }

    /* Método responsável por alterar os dados de acordo com o campo condicional. */

    public function alterarDados($campoCondicional) {
        $dados = array(0 => $this->professoresList[0]->getNome(), 1 => $this->professoresList[1]->getNome(), 2 => $this->professoresList[2]->getNome());
        return $this->dbBanca->editar($campoCondicional, $dados);
    }

}
